import requests

def call_mcp_server():
    # 获取工具列表和介绍
    tools_response = requests.get("http://127.0.0.1:5000/tools")
    tools = tools_response.json()

    print("工具列表和介绍:")
    for tool in tools:
        print(f"- {tool['name']}: {tool['description']}")

    # 用户输入
    user_input = input("请输入你的需求: ")

    # 模拟调用大模型填充参数（这里硬编码了部分内容，但实际案例中需调用 OpenAI 或其他 LLM API）
    # 大模型应该会根据 `工具列表` 和 `用户输入` 生成合适的 `参数`
    if "天气" in user_input:
        model_filled_params = {
            "tool_name": "weather",
            "params": {"location": "北京"}
        }
    elif "计算" in user_input:
        model_filled_params = {
            "tool_name": "calculator",
            "params": {"expression": "2 + 2"}
        }
    elif "翻译" in user_input:
        model_filled_params = {
            "tool_name": "translator",
            "params": {"text": "你好", "target_language": "English"}
        }
    else:
        print("无法识别输入，请重试。")
        return

    # 将用户输入和填充的参数发送给 MCP Server
    server_response = requests.post("http://127.0.0.1:5000/handle_request", json={
        "user_input": user_input,
        "model_filled_params": model_filled_params
    })

    result = server_response.json()["result"]
    print(f"结果: {result}")

if __name__ == '__main__':
    call_mcp_server()